package com.infore.siteManagement.service;

import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.springframework.web.multipart.MultipartFile;

import com.infore.siteManagement.dto.StationDto;
import com.infore.siteManagement.dto.StationInfoDto;
import com.infore.siteManagement.dto.StationYunlInfoDto;
import com.infore.siteManagement.dto.StatisDataQueryVO;
import com.infore.siteManagement.dto.YunlAppInfoParam;
import com.infore.siteManagement.entity.Station;
import com.infore.siteManagement.select.dto.QueryParamDto;
import com.infore.siteManagement.select.util.PageObject;
import com.infore.siteManagement.util.ResultEntity;
import com.infore.siteManagement.vo.MainStatisVO;
import com.infore.siteManagement.vo.StationTypeListVO;

public interface StationService {
	
	ResultEntity editOrAddStation(StationDto stationDto);
	
	ResultEntity queryStation(String stationCode);

	ResultEntity editStation(Station station);

	ResultEntity queryStation(QueryParamDto queryParamDto);

	ResultEntity deleteStation(String ids);

	ResultEntity validateStation(Station station);

	ResultEntity queryStationTree(String keyName, String typeCode, String isUsedString, String isMonitoring, HttpServletRequest request);

	ResultEntity queryStationBasinnTree(String keyName, String typeCode, String isUsedString, String isMonitoring, HttpServletRequest request);

	ResultEntity customStation(String userId, String groupName, String[] groupStations);

	ResultEntity queryCustomStation(HttpServletRequest request, String keyName, String typeCode, String isUsedString, String isMonitoring);

	ResultEntity updateCustom(String userId, String groupName, String newName, String[] newGroupStations);

	ResultEntity deleteCustom(String userId, String groupName);
	
	/**
     * 整体+子项统计
     * @param statisData
	 * @param roleId 
	 * @param roleId 
     * @return
     */
    List<MainStatisVO> allCateStatis(StatisDataQueryVO statisData, String statusType,HttpServletRequest request);

    ResultEntity queryStationInfoByMn(String mn);

    ResultEntity queryAllStationInfo(HttpServletRequest request);

	ResultEntity queryControlTree(String keyName, String typeCode, String string, String isMonitoring);

	ResultEntity addImageOut(MultipartFile[] files,String mn,String type);

	ResultEntity queryImage(String mn);

	ResultEntity deleteImage(String path, String mn,String type);

	ResultEntity addImageInside(MultipartFile[] files, String mn, String type);

	ResultEntity addImageBuild(MultipartFile[] files, String mn, String type);

	ResultEntity querySurfaceWaterTypes();

	ResultEntity queryTargetLevel();

	ResultEntity editOrAddStation(StationInfoDto stationInfoDto);

	ResultEntity queryFunction();

	ResultEntity singleStationInfo(String areaId, String stationName,PageObject page,HttpServletRequest request);

    List<StationTypeListVO> packStatonTypeListVP(HttpServletRequest request);

	ResultEntity queryByUserId(HttpServletRequest request);

	ResultEntity queryTreeByPlatform(String platfrom,String appCode);
	
	/**
	 * 查询空气站点实时数据状态
	 * 
	 * @author 蔡永顺
	 * @return ResultEntity
	 * @param request
	 * @return
	 * @throws Exception
	 * @date 2019年12月20日下午4:36:22
	 */
    ResultEntity queryAllAirStationInfo(HttpServletRequest request) throws Exception;
    
    List<StationTypeListVO> packAirStatonTypeListVP(HttpServletRequest request) throws Exception;

    List<MainStatisVO> allAirCateStatis(StatisDataQueryVO statisData, String statusType, HttpServletRequest request)
            throws Exception;

	ResultEntity queryStationByOfcId(HttpServletRequest request,String ofcId,String key);

	ResultEntity queryStationStute(HttpServletRequest request);

	ResultEntity queryStationOnly(HttpServletRequest request, String typeId,
			com.infore.siteManagement.util.PageObject pageObject);
	
	List<StationYunlInfoDto> queryBaiscStationInfo(YunlAppInfoParam param, String type);

    ResultEntity queryStationAndTypeTree(String keyName, String typeCode, String isUsedString, String isMonitoring,
            HttpServletRequest request);

}
